package com.wego.converter;

import com.wego.bean.BaseConverter;
import com.wego.bean.ExcelConverter;
import com.wego.domain.details.GameDataDetails;
import com.wego.domain.dto.GameDataDTO;
import com.wego.domain.entity.GameData;
import com.wego.domain.excel.GameDataExcel;
import com.wego.domain.vo.GameDataVO;
import org.mapstruct.Mapper;

@Mapper(componentModel = "spring")
public interface GameDataConverter extends BaseConverter<GameData, GameDataVO,GameDataDetails, GameDataDTO>, ExcelConverter<GameData, GameDataExcel> {
    /**
     * 将GameData对象转换为GameDataDetails对象
     * 该方法会将GameData对象中的status编码转换为对应的文本描述
     *
     * @param gameData 源GameData对象，包含游戏数据基本信息和状态编码
     * @return GameDataDetails对象，包含转换后的游戏数据详细信息，其中status为文本描述
     */
   GameDataDetails gameData2gameDataDetails(GameData gameData);

    /**
     * 将GameData对象转换为GameDataExcel对象
     * 该方法会将GameData对象中的status编码转换为对应的文本描述，用于Excel导出
     *
     * @param gameData 源GameData对象，包含游戏数据基本信息和状态编码
     * @return GameDataExcel对象，包含转换后的游戏数据Excel信息，其中status为文本描述
     */
   GameDataExcel gameData2gameDataExcel(GameData gameData);

    /**
     * 将GameDataExcel对象转换为GameData对象
     * 该方法会将GameDataExcel对象中的status文本描述转换为对应的编码
     *
     * @param gameDataExcel 源GameDataExcel对象，包含从Excel导入的游戏数据信息
     * @return GameData对象，包含转换后的游戏数据基本信息，其中status为编码
     */
    GameData gameDataExcel2gameData(GameDataExcel gameDataExcel);

}
